package com.lifeverse.entity.enums;

/**
 * 协作角色枚举
 * 定义生命体在协作中的角色
 */
public enum CollaborationRole {
    
    /**
     * 发起者 - 协作任务的发起者
     */
    INITIATOR("发起者", "协作任务的发起者和主要负责人"),
    
    /**
     * 协调者 - 协作过程的协调者
     */
    COORDINATOR("协调者", "负责协调协作过程和资源分配"),
    
    /**
     * 执行者 - 主要执行者
     */
    EXECUTOR("执行者", "负责具体执行协作任务"),
    
    /**
     * 顾问 - 提供专业建议
     */
    ADVISOR("顾问", "提供专业知识和建议"),
    
    /**
     * 支持者 - 提供支持和辅助
     */
    SUPPORTER("支持者", "提供资源支持和辅助工作"),
    
    /**
     * 观察者 - 观察和学习
     */
    OBSERVER("观察者", "观察协作过程并学习经验"),
    
    /**
     * 评估者 - 评估协作效果
     */
    EVALUATOR("评估者", "评估协作过程和结果"),
    
    /**
     * 监督者 - 监督协作进展
     */
    SUPERVISOR("监督者", "监督协作进展和质量"),
    
    /**
     * 专家 - 领域专家
     */
    EXPERT("专家", "特定领域的专业专家"),
    
    /**
     * 学习者 - 学习参与者
     */
    LEARNER("学习者", "通过协作学习新知识和技能");
    
    private final String displayName;
    private final String description;
    
    CollaborationRole(String displayName, String description) {
        this.displayName = displayName;
        this.description = description;
    }
    
    public String getDisplayName() {
        return displayName;
    }
    
    public String getDescription() {
        return description;
    }
    
    /**
     * 判断是否为领导角色
     */
    public boolean isLeadershipRole() {
        return this == INITIATOR || this == COORDINATOR || this == SUPERVISOR;
    }
    
    /**
     * 判断是否为执行角色
     */
    public boolean isExecutionRole() {
        return this == EXECUTOR || this == SUPPORTER;
    }
    
    /**
     * 判断是否为咨询角色
     */
    public boolean isConsultingRole() {
        return this == ADVISOR || this == EXPERT;
    }
    
    /**
     * 判断是否为学习角色
     */
    public boolean isLearningRole() {
        return this == OBSERVER || this == LEARNER;
    }
}